const util = require('../util/util');  // 引入 util.js 文件

Page({
  data: {
    comp_staff_name: '', // 处理人名称
    comp_staff_tele: '', // 联系电话
    comp_sub_time: '', // 提交时间
    comp_content: '', // 投诉内容
    comp_treat: '', // 投诉处理状态
    comp_feedback: 0, // 用户选择的反馈值，默认 0 表示未填写
    id: null, // 投诉的 ID
    isSubmitted: false, // 提交状态，默认未提交
    feedbackOptions: ['非常满意', '满意', '基本满意', '一般', '不满意'], // 反馈选项
    images: [], // 存储图片路径数组
  },

  onLoad: function (options) {
    console.log("页面加载，接收到的参数：", options);
    const id = options.id;

    if (id) {
      this.setData({ id }); // 设置投诉 ID
      this.checkSubmissionStatus(id); // 检查是否已提交
      this.fetchDetail(id); // 获取投诉详情
    } else {
      console.error("未接收到有效的投诉 ID");
      wx.showModal({
        title: '错误',
        content: '未接收到有效的投诉 ID，请重试。',
        showCancel: false
      });
    }
  },

  // 检查是否已提交过
  checkSubmissionStatus: function (id) {
    const isSubmitted = wx.getStorageSync(`isSubmitted_${id}`);
    this.setData({ isSubmitted: !!isSubmitted });
  },

   onPullDownRefresh: function () {
    console.log("触发下拉刷新");
    this.fetchDetail(this.data.id);  // 重新获取数据
  },
  // 获取投诉详情
  fetchDetail: function (id) {
    const token = wx.getStorageSync('token');
    if (!token) {
      wx.showModal({
        title: '提示',
        content: '请先登录。',
        showCancel: false,
        success: function () {
          wx.redirectTo({
            url: '/pages/login/login' 
          });
        }
      });
      return;
    }
  
    const that = this;
    wx.request({
      url: 'https://api.kuangqiaodongjie.cn/user/ComplaintUserDetail/',
      method: 'GET',
      header: {
        'Authorization': token
      },
      success: function (res) {
        console.log("完整的返回数据:", res);
        if (res.statusCode === 200) {
          const complaint = res.data.data.find(item => item.id == id);
          if (complaint) {
            const imageUrls = complaint.complainthandlemedia_set.map(item => item.comp_handle_media);
            // 打印获取到的图片路径
            console.log("图片 URLs:", imageUrls); 
            that.setData({
              comp_staff_name: complaint.comp_staff_name || '未知',
              comp_staff_tele: complaint.comp_staff_tele || '无',
              comp_sub_time: complaint.comp_sub_time ? util.formatDateTime(complaint.comp_sub_time) : '无',
              comp_content: complaint.comp_content || '无内容',
              comp_treat: complaint.comp_treat, 
              comp_feedback: complaint.comp_feedback,
              images: imageUrls, // 设置图片路径
              isSubmitted: complaint.comp_feedback > 0
            });
  
            // 这里可以再打印一次，确认数据是否正确更新
            console.log("this.data.images:", that.data.images);
          }
        } else {
          wx.showModal({
            title: '错误',
            content: `服务器返回错误：${res.statusCode}`,
            showCancel: false
          });
        }
      },
      fail: function (err) {
        wx.showModal({
          title: '错误',
          content: '请求服务器失败，请稍后再试。',
          showCancel: false
        });
        wx.stopPullDownRefresh();
      }
    });
  }
  
,
// 预览图片方法
previewImage: function (event) {
  const index = event.currentTarget.dataset.index; // 获取点击图片的索引
  const images = this.data.images; // 获取图片数组

  wx.previewImage({
    current: images[index], // 当前显示的图片
    urls: images // 图片列表
  });
}
,

  // 用户选择评价
  selectFeedback: function (event) {
    if (this.data.isSubmitted) return; // 禁止重复选择

    const feedback = event.detail.value;
    this.setData({
      comp_feedback: feedback
    });
  },

  // 提交评价
  submitFeedback: function () {
    const { comp_feedback, comp_treat, id, isSubmitted } = this.data;

    // 防止重复提交
    if (isSubmitted) {
      wx.showModal({
        title: '提示',
        content: '您已提交过评价。',
        showCancel: false
      });
      return;
    }

    if (comp_treat != 0 && comp_treat != 2) {
      wx.showToast({ title: '当前不可评价', icon: 'none' });
      return;
    }

    if (!comp_feedback) {
      wx.showToast({ title: '请选择一个评价', icon: 'none' });
      return;
    }

    const token = wx.getStorageSync('token');
    if (!token) {
      wx.redirectTo({ url: '/pages/login/login' });
      return;
    }

    const that = this;

    wx.request({
      url: `https://api.kuangqiaodongjie.cn/user/ComplaintFeedback/${id}/`,
      method: 'PUT',
      header: {
        'Authorization': token
      },
      data: { comp_feedback: comp_feedback },
      success: function (res) {
        if (res.statusCode === 200) {
          wx.showToast({ title: '提交成功', icon: 'success' });
          that.setData({
            isSubmitted: true // 设置为已提交，禁用按钮
          });
          wx.setStorageSync(`isSubmitted_${id}`, true); // 将提交状态存储到本地
        } else {
          wx.showToast({ title: `提交失败：${res.statusCode}`, icon: 'none' });
        }
      },
      fail: function (err) {
        wx.showToast({ title: '提交失败，请重试', icon: 'none' });
      }
    });
  }
});
